package bTree.LeetCode;

public class 二叉树的最近公共祖先 {
    public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
        if (null==root)return null;
        if (root==p||root==q)return root;

        TreeNode left=lowestCommonAncestor(root.left,p,q);
        TreeNode right=lowestCommonAncestor(root.right,p,q);
        if (null!=right&&null!=left) return root;
        if (null==left&&null!=right) return right;
        if (null==right&&null!=left) return left;
        return null;
    }
}